package net.sf.ivyide;

import fr.jayasoft.ivy.ModuleId;

import java.io.File;
import java.util.Map;

public interface ModuleProvider {

    /**
     * Get module source descriptor for a module that
     * is included with source.
     *
     * @param file Root directory of a module.
     * @return null if it does not exist
     */
    ModuleSourceDescriptor getModuleSource(File file);

    /**
     * Get a list of all modules in the project.
     *
     * @return List of [moduleId, root dir] pairs.
     */
    Map<ModuleId, File> getModules();

    ResolvedModule resolveModule(File moduleDir);

}